const mongoose = require("mongoose");
mongoose.connect("mongodb://127.0.0.1:27017/dahaida",{
	serverSelectionTimeoutMs:2000
}).then(()=>{
	console.log("连接数据库成功",mongoose.connection.readyState);
	// 1- 先给集合制定一个大纲
	const schema = new mongoose.Schema({
		username:{
			type:String,// 类型是一个字符串
			required:true,// 不允许省略
			unique:true,// 不允许重复
		},
		age:{
			type:Number,// 类型是一个数字
			default:100
		},
		hobby:{
			type:[String],// 数组中的元素类型必须是字符串
		},
		qita:{
			type:mongoose.Schema.Types.Mixed,// 不限制类型
		}
	},{
		versionKey:false// 不需要使用属性__v
	});
	// 2- 生成model,所有的操作数据的方法全部来自于model
	// 第一个参数要指定集合的名字，第二个参数是对集合下的文档的约束,第三个参数是指定的最终集合名字
	const model = mongoose.model("userList",schema,"userList");
	// 无条件查找
	// model.find().then(value=>{
	// 	console.log(value);// 查找到的所有文档
	// })

	// 有条件查找
	// model.find({age:20}).then(value=>{
	// 	console.log(value);
	// })

	// 根据唯一标识进行查找，通过find获取到的是一个数组
	// model.find({_id:'68520e3058b886b4fbc88096'}).then(value=>{
	// 	console.log(value)
	// })

	// 查找满足条件的一条文档
	// model.findOne({_id:'68520e3058b886b4fbc88096'}).then(value=>{
	// 	console.log(value)
	// })

	// 根据ID进行查找
	// model.findById("68520e3058b886b4fbc88096").then(value=>{
	// 	console.log(value)
	// })

	// 获取文档的条数
	// model.countDocuments({age:100}).then(value=>{
	// 	console.log(value);
	// })

	// 排序 跳过
	model.find().sort({age:1}).skip(2).limit(2).then(value=>{
		console.log(value)
	})

}).catch(err=>{
	console.log("连接数据库失败",err);
})
